package com.jd.tuning.jvm.lock.syn;

import java.util.List;
import java.util.Vector;

/**
 * synchronized的优化机制
 * 2、锁粗化
 */
public class SynchronizedTest5 {


    public static void main(String[] args) {
       List<Integer> list=new Vector<>();
        long start=System.currentTimeMillis();
        for(int i=0;i<10000000;i++){
            synchronized (list) {       //循环使用了synchronized，没有锁粗化，持续的加锁解锁切换，锁粗化，范围变大
                list.add(i);
            }
        }
        /**
         * 锁粗化后的代码
         * synchronized (list) {
         *      for(int i=0;i<10000000;i++){
         *            list.add(i);
         *       }
         *    }
         */
        long end=System.currentTimeMillis();
        System.out.println(end-start);
    }

}
